ডেটাবেজের নিরাপত্তা খুবই গুরুত্বপূর্ণ বিষয়। কারণ ডেটাবেজে ব্যক্তিগত কিংবা গোপনীয় তথ্য থাকতে পারে, ব্যবসায়িক তথ্য থাকতে পারে কিংবা সরকারি গুরুত্বপূর্ণ তথ্যও থাকতে পারে। ডেটাবেজের নিরাপত্তার বিষয়টি একাধিক দৃষ্টিকোণ থেকে দেখা হয়।
প্রথমত, ডেটার নিরাপত্তা দিতে হবে যেন ডেটা হারিয়ে না যায়, বা ডেটা লস (data loss) না ঘটে। এ জন্য নিয়মিত ডেটার ব্যাকআপ নিতে হয়, অর্থাৎ ডেটার কপি তৈরি করা হয়। ডেটার কপি তৈরি করে একই হার্ড ডিস্কে রাখলে কোনো কারণে আসল ডেটাতে কোনো সমস্যা হলে (যাকে ডেটা করাপশন— data corruption বলা হয়) ব্যাকআপ থেকে সেই ডেটা পুনরুদ্ধার করা যায়। কিন্তু সম্পূর্ণ হার্ড ডিস্ক ক্র্যাশ করতে পারে বা নষ্ট হয়ে যেতে পারে সেই সম্ভাবনার কথা বিবেচনা করে পৃথক হার্ড ডিস্কে ডেটা ব্যাকআপ রাখা হয়। আবার ডেটার গুরুত্ব বিবেচনা করে, আলাদা ডেটা সেন্টারেও ডেটার ব্যাকআপ রাখা হয়, যেন কোনোরকম দুর্যোগ, যেমন— অগ্নিকাণ্ড, ভূমিকম্প ইত্যাদি ঘটলেও ডেটা পুনরুদ্ধার করা যায়। তাই ডেটা সেন্টারগুলো আলাদা শহরে হয়।
আবার অনাকাঙ্ক্ষিত ব্যক্তি বা সিস্টেম যেন ডেটা দেখতে কিংবা ডেটা পরিবর্তন করতে না পারে, ডেটাবেজে সেই ব্যবস্থাও থাকে। এটিও ডেটার নিরাপত্তার গুরুত্বপূর্ণ দিক। যেমন—পাসওয়ার্ড ছাড়া কেউ ডেটাবেজ সিস্টেমে ঢুকতে পারবে না। আবার কোনো কোনো ব্যবহারকারী কেবল ডেটাবেজের নির্দিষ্ট কিছু টেবিল নিয়ে কাজ করতে পারবে। আবার কোনো কোনো ব্যবহারকারী কেবল ডেটা দেখতে পারবে (SELECT), কিন্তু পরিবর্তন (INSERT, UPDATE, DELETE) করতে পারবে না। এজন্য বিভিন্ন রকমের পারমিশন (permission) ঠিক করে দেওয়া যায়। এসকিউলাইট ডেটাবেজে এই বৈশিষ্ট্য না থাকলেও ওরাকল, পোস্টগ্রেস, মাইসিক্যুয়েল, এসকিউএল সার্ভার ইত্যাদি ডেটাবেজে এ ধরনের নিরাপত্তার ব্যবস্থা রয়েছে।
হার্ড ডিস্কে যখন ডেটা সংরক্ষণ করা হয়, কিংবা নেটওয়ার্কের মাধ্যমে ডেটা আদান-প্রদান করা হয়, তখন সেই ডেটার গোপনীয়তা রক্ষা করতে হলে ডেটা এনক্রিপ্ট (encrypt) করতে হয়। তা না হলে অনাকাঙ্ক্ষিত ব্যক্তি কিংবা সিস্টেম সেই ডেটা পড়ে ফেলতে পারে। ডেটা এনক্রিপ্ট করার ধারণা কিন্তু নতুন নয়, বা এটা যে কেবল কম্পিউটারের সঙ্গে সম্পর্কিত, এমনটি নয়। হাজার বছর আগেও মানুষ ডেটা এনক্রিপ্ট করত, যেন যাকে ডেটা পাঠানো হচ্ছে সে ছাড়া অন্য কেউ সেই ডেটার মর্মোদ্ধার করতে না পারে। রোমান সম্রাট জুলিয়াস সিজার একটি পদ্ধতিতে তার চিঠিপত্র লিখতেন, যেটি এনক্রিপ্ট করা থাকত এবং যার কাছে চিঠি যাবে, সেই কেবল ডিক্রিপ্ট (decrypt) করতে পারত বা চিঠির অর্থ উদ্ধার করতে পারত। আবার প্রথম ও দ্বিতীয় বিশ্বযুদ্ধের সময় তো অনেক গণিতবিদ এই এনক্রিপশন পদ্ধতি নিয়ে কাজ করেছেন, যেন তারা শত্রুপক্ষের নিজেদের মধ্যে পাঠানো বার্তার মর্মোদ্ধার করতে পারেন, সেই সঙ্গে মিত্রপক্ষের মধ্যে নিরাপদে ডেটা এনক্রিপ্ট করে পাঠাতে পারেন। কম্পিউটার বিজ্ঞানের যেই শাখায় ডেটা এনক্রিপশন নিয়ে গবেষণা ও কাজ করা হয়, তাকে বলা হয় ক্রিপ্টোগ্রাফি (cryptography)।
এনক্রিপশন পদ্ধতির মূলনীতি হচ্ছে মূল ডেটাকে প্রথমে এনক্রিপ্ট করা। যে ডেটা পাঠাবে, এটি তার কাজ। মূল ডেটাকে বলা হয় প্লেইন টেক্সট (plane text) আর এনক্রিপ্ট করার পরে সেই ডেটাকে বলে সাইফার টেক্সট (cipher text)। তারপর আরেকটি সিস্টেমের কাজ হচ্ছে সাইফার টেক্সট থেকে মূল ডেটা উদ্ধার করা। ডেটা
এনক্রিপশন পদ্ধতি মুলত দুই ধরনের হয়—
১. সিমেট্রিক কি ক্রিপ্টোগ্রাফি (symmetric key cryptography)
২. অ্যাসিমেট্রিক কি ক্রিপ্টোগ্রাফি (asymmetric key
cryptography)
সিমেট্রিক কি ক্রিপ্টোগ্রাফি
এই পদ্ধতিতে একটি বিশেষ কি (key) ব্যবহার করে ডেটা এনক্রিপ্ট করা হয় এবং প্রেরক ও গ্রাহক উভয়পক্ষের কাছেই এই কি (key) থাকতে হয়। প্রেরক এই কি (key) ব্যবহার করে ডেটা এনক্রিপ্ট করে এবং গ্রাহক এই কি (key) ব্যবহার করে ডেটা ডিক্রিপ্ট করে।
এই পদ্ধতিটি বেশ কার্যকর হলেও যখন দুটি আলাদা পক্ষের মধ্যে ডেটা আদান-প্রদান করা হয়, তখন দুটি বিশেষ কারণে অসুবিধা হয়। প্রথমত, যেই কি (key) ব্যবহার করা হয়, সেই কি যেন অন্য কেউ জানতে না পারে, সেটি নিশ্চিত করতে হয়। এটি আপাতদৃষ্টিতে সহজ মনে হলেও, আসলে অত্যন্ত কঠিন কাজ। দ্বিতীয়ত, একপক্ষ যদি অনেকের সঙ্গে ডেটা আদান-প্রদান করে, সেই ক্ষেত্রে প্রতিটি পক্ষের জন্যই আলাদা কি (key) ব্যবহার করতে হয়। এখন, ধরা যাক, একটি ই-কমার্স সাইটে দশ লক্ষ গ্রাহক, তাদের প্রত্যেকের সঙ্গে ডেটা এনক্রিপ্ট করার জন্য পৃথক কি ব্যবহার করা বাস্তবসম্মত নয়।
অ্যাসিমেট্রিক কি ক্রিপ্টোগ্রাফি
প্রত্যেক সিস্টেম একটি বিশেষ অ্যালগরিদম ব্যবহার করে একজোড়া কি তৈরি করে, যাদের একটি হচ্ছে পাবলিক কি ও অপরটি হচ্ছে প্রাইভেট কি। এখন প্ৰত্যেক সিস্টেম তার পাবলিক কি সবাইকে জানিয়ে দেয়।
তাহলে A-এর কাছে B ও C-এর পাবলিক কি আছে। এখন A যদি B-কে কোনো ডেটা পাঠাতে চায়, তাহলে B-এর পাবলিক কি দিয়ে সেই ডেটা এনক্রিপ্ট করে পাঠায়। এই ডেটা ডিক্রিপ্ট করতে হলে B-এর প্রাইভেট কি ব্যবহার করতে হবে, তাই অন্য কেউ এই ডেটা ডিক্রিপ্ট করতে পারবে না। তেমনি C-এর কাছে ডেটা পাঠাতে হলে C-এর পাবলিক কি ব্যবহার করে ডেটা পাঠাতে হবে যা কেবল C-এর পক্ষেই ডিক্রিপ্ট করা সম্ভব। C-এর পাবলিক কি ব্যবহার না করে এনক্রিপ্ট করা হলে সেই ডেটা C-এর পক্ষে ডিক্রিপ্ট করা সম্ভব নয়। অনুরূপভাবে, A-এর কাছে ডেটা পাঠাতে হলে A-এর পাবলিক কি ব্যবহার করে এনক্রিপ্ট করে ডেটা পাঠাতে হবে, যা A তার প্রাইভেট কি ব্যবহার করে ডিক্রিপ্ট করতে পারবে।
রিলেশনাল ডেটাবেজের ধারণা প্রবর্তন করেন এডগার ফ্র্যাঙ্ক কড (Edgar Frank Codd)। সেই সময় তিনি ১২টি বৈশিষ্ট্যের কথা উল্লেখ করেন, যেগুলো রিলেশনাল ডেটাবেজ সিস্টেমে থাকতে হবে। বিভিন্ন ডেটাবেজ নির্মাতা প্রতিষ্ঠান তাদের নিজেদের মতো ডেটাবেজ তৈরির সময় বৈশিষ্ট্যগুলো মেনে চলার চেষ্টা করে। রিলেশনাল ডেটাবেজের কিছু সাধারণ বৈশিষ্ট্য হচ্ছে—
SELECT name FROM student WHERE roll=1 AND class
এতে student টেবিলের সব শিক্ষার্থী যাদের class এর মান 9, তাদের ক্ষেত্রে সেই মানটি 10 হয়ে যাবে।
ডেটাবেজ প্রদত্ত ইন্টারফেস ব্যবহার করে বিভিন্ন সফটওয়্যার অ্যাপ্লিকেশন ডেটাবেজ ব্যবহার করতে পারবে। ইন্টারফেস পরিবর্তন না করে ডেটাবেজে প্রয়োজন হলে অভ্যন্তরীণ পরিবর্তন করা যাবে। ডেটাবেজের ডেটা যদি একাধিক ডিস্কে কিংবা একাধিক কম্পিউটারে সংরক্ষণ করা হয়, সেটি নিয়ে ব্যবহারকারীর মাথা ঘামাতে হবে না। ব্যবহারকারীর কাছে মনে হবে ডেটাবেজ একটি জায়গাতেই ডেটা সংরক্ষণ করছে।
RDBMS-এর ব্যবহার অনেক ব্যাপক ও বিস্তৃত। যদিও বাংলাদেশে এখন সব পর্যায়ে তথ্যপ্রযুক্তির ছোঁয়া লাগেনি, তাই এখানে অনেক কিছু করার আছে।
সরকারি-বেসরকারি প্রতিষ্ঠানের বিভিন্ন ধরনের তথ্য সংরক্ষণ করার জন্য ডেটাবেজ ব্যবহার করা হয়। যেমন—জাতীয় পরিচয়পত্রে নাগরিকদের যে তথ্য থাকে, সেগুলো ডেটাবেজে সংরক্ষণ করা হয়। তারপরে পাসপোর্ট, ড্রাইভিং লাইসেন্স, চিকিৎসা, কৃষি, জমিজমার হিসেব ইত্যাদি নানান তথ্য ডেটাবেজে সংরক্ষণ করা হয়।
ই-কমার্স ওয়েবসাইটে বিভিন্ন ধরনের পণ্য ক্রয় করার ব্যবস্থা থাকে। এক্ষেত্রে পণ্যের তথ্য রাখা, গ্রাহকদের তথ্য রাখা, গ্রাহকদের পণ্য সরবরাহ ব্যবস্থা—এই পুরো প্রক্রিয়াটি পরিচালনা করার জন্য যে সফটওয়্যার ব্যবহার করা হয়, তার মূলে রয়েছে ডেটাবেজ। ব্যাংক, বিমা ও বিভিন্ন আর্থিক প্রতিষ্ঠানেও রিলেশনাল ডেটাবেজ ব্যবহার করা হয়। এক্ষেত্রে গ্রাহকদের তথ্য ব্যবস্থাপনা, লেনদেন ইত্যাদি পরিচালনা করার জন্য ডেটাবেজের প্রয়োজন হয়। শিক্ষাপ্রতিষ্ঠানে শিক্ষার্থীদের তথ্য, শিক্ষকদের তথ্য, শিক্ষার্থী ভর্তি, তাদের হাজিরার তথ্য, পরীক্ষার ফলাফল ইত্যাদি ব্যবস্থাপনা করার জন্য ডেটাবেজ ব্যবহার করা হয়।
বড় বড় প্রতিষ্ঠান তথা কর্পোরেশন (corporation)-এ অনেক ধরনের ডেটা নিয়ে কাজ করতে হয়। এর মধ্যে অনেক কাজই আবার পরস্পরের উপর নির্ভরশীল—একটি না ঘটলে অন্যটি ঘটানো যায় না। যেমন- কোনো পণ্য যদি স্টকে না থাকে, তাহলে সেটি বিক্রি করা যায় না। এখন এই কর্পোরেশন পরিচালনা করার জন্য এক ধরনের সফটওয়্যার রয়েছে, যেগুলোকে বলা হয় ইআরপি ( ERP : Enterprise Resource Planner)। ইআরপি সফটওয়্যারের বিভিন্ন মডিউল থাকে, বিভিন্ন প্রতিষ্ঠান তাদের প্রয়োজনমতো বিভিন্ন মডিউল ব্যবহার করে। কিছু সাধারণ মডিউল হচ্ছে, অ্যাকাউন্টস (accounts – সব ধরনের হিসাব-নিকাশের জন্য), ইনভেন্টরি (inventory – পণ্যের মজুদ ব্যবস্থাপনা), পে-রোল (payroll-কর্মচারীদের বেতন-ভাতা সংক্রান্ত হিসাব-নিকাশ), কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট (customer relationship management ) ইত্যাদি। এই সবকিছুর মূলেই রয়েছে ডেটা আর তাই ডেটার সঠিক ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ। আবার বিভিন্ন বড় বড় প্রতিষ্ঠানের অফিস একাধিক শহরে, এমনকি একাধিক দেশেও থাকতে পারে। সব অফিসের সব তথ্য একই সিস্টেমের আওতায় আনা কর্পোরেট ডেটাবেজের প্রধান চ্যালেঞ্জ। সেই সঙ্গে সেসব ডেটার নিরপত্তা নিশ্চিত করাও একটি গুরুত্বপূর্ণ বিষয়।
সরকারি প্রতিষ্ঠানে ডেটাবেজের ব্যবহার অত্যন্ত গুরুত্বপূর্ণ। সরকারি বিভিন্ন প্রতিষ্ঠান দেশের নাগরিকদের বিভিন্ন তথ্য নিয়ে কাজ করে। কিন্তু ডেটাবেজ ব্যবহার না করলে কিংবা সঠিকভাবে ব্যবহার না করলে সেসব প্রতিষ্ঠানের মধ্যে কোনো সমন্বয় থাকে না। এ কারণে নাগরিকদের যথেষ্ট ভোগান্তি পোহাতে হয়, সরকারি প্রতিষ্ঠানগুলোতেও লাখ লাখ কর্মঘণ্টা নষ্ট হয়। উদাহরণস্বরূপ, বাংলাদেশের সব নাগরিকদের তথ্য ও আঙ্গুলের ছাপ জাতীয় পরিচয়পত্র তৈরির সময় সংগ্রহ করা হয়। সরকারি কোনো একটি বিশেষ প্ৰতিষ্ঠান সেই তথ্য সংরক্ষণ ও ব্যবস্থাপনার কাজ করে। এখন পাসপোর্ট তৈরির সময়, সবাইকে আবার সব তথ্য পূরণ করতে হয়। দুটি প্রতিষ্ঠানের সফটওয়্যারের মধ্যে সমন্বয় করে ডেটাবেজের সঠিক ব্যবহার করলে এই কাজটি সহজেই এড়ানো যায়।
আরেকটি উদাহরণ দেওয়া যাক। এইচএসসি পরীক্ষা পাশ করার পরে অনেকেই বিভিন্ন বিশ্ববিদ্যালয়ে ভর্তি পরীক্ষা দিতে যায়। সেখানে তাকে রেজিস্ট্রেশন ফর্ম পূরণ করা সহ নানা ঝামেলার মধ্যে দিয়ে যেতে হয়। শিক্ষাবোর্ডের কাছে কিন্তু একজন শিক্ষার্থীর তথ্য ও তার মাধ্যমিক ও উচ্চ মাধ্যমিক পরীক্ষার ফলাফল ডেটাবেজে সংরক্ষণ করা আছে। এই ডেটাবেজের সঠিক ব্যবহার করলে আর আলাদা রেজিস্ট্রেশন ফর্মে একই তথ্য দেওয়ার কোনো প্রয়োজন নেই। ইতোমধ্যে কয়েকটি বিশ্ববিদ্যালয় এই কাজটি করে তাদের ভর্তি প্রক্রিয়া সহজ করেছে। এরকম শত শত সরকারি প্রতিষ্ঠানে অনেক কাজ হয়, যেখানে ডেটাবেজ ব্যবহার ও সঠিকভাবে সমন্বয় করলে অনেক কাজ অনেক কম সময়ে ও কম ঝামেলা করে সম্পন্ন করা যায়।
সরকারি প্রতিষ্ঠানে ডেটাবেজের আরেকটি ভালো ব্যবহার হতে পারে ডেটা-ভিত্তিক সিদ্ধান্ত গ্রহণ প্রক্রিয়া চালুর মাধ্যমে। ঠিকভাবে বিভিন্ন রকম ডেটা সংরক্ষণ করলে, সেই ডেটা ব্যবহার করে ভবিষ্যতে কোন কাজটি কখন করতে হবে, সেই সিদ্ধান্ত নেওয়া সহজ হয়ে যায়। শিক্ষা, স্বাস্থ্য, কৃষি—এসব ক্ষেত্রে বিগত বছরের ডেটা ব্যবহার ও বিশ্লেষণ করে অনেক তথ্য বের করা সম্ভব, যা পরবর্তী বছরের করণীয় নির্ধারণ করতে সহায়তা করে। যেমন— বিভিন্ন সরকারি-বেসরকারি হাসপাতালের রোগীদের তথ্য যদি একটি কেন্দ্রীয় ডেটাবেজে থাকে, তাহলে কোন সময়ে, কোন অঞ্চলে কোন রোগের প্রকোপ বেশি হয়, তা সহজেই নির্ণয় করা সম্ভব। সেক্ষেত্রে আগে থেকেই প্রতিরোধের ব্যবস্থা গ্রহণ, প্রয়োজনীয় ওষুধের সরবরাহ নিশ্চিতকরণ ইত্যাদি কাজ করে ফেলা সম্ভব।
সরকারি প্রতিষ্ঠানে ডেটাবেজ ব্যবহারের মূল চ্যালেঞ্জগুলো হচ্ছে ডেটার নিরাপত্তা নিশ্চিত করা, বিপুল পরিমাণ ডেটার ব্যবস্থাপনার জন্য দক্ষ লোকের সরবরাহ নিশ্চিত করা, বিভিন্ন প্রতিষ্ঠান যেন একই ডেটা আলাদাভাবে ব্যবহার না করে (বরং নিজেদের মধ্যে ডেটা আদান-প্রদান করতে পারে), সেটির ব্যবস্থা করা ইত্যাদি।